/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.sisece.controlador;

import com.sisece.modelo.dato.Categoria;
import com.sisece.modelo.dato.Producto;
import com.sisece.service.AdministradorService;
import com.sisece.service.impl.AdministradorServiceImpl;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author laptop-w8
 */
@ManagedBean
@ViewScoped
public class ProductoController implements Serializable {

    private Producto producto;
    private HashMap hmCategorias;
    private List<Categoria> listaCategorias;
    private Categoria categoriaSeleccionado;
    /**
     * Creates a new instance of ProductoController
     */
    public ProductoController() {
        inicializar();
    }

    private void inicializar() {
        producto=new Producto();
        producto.setEstado(1);
        categoriaSeleccionado = new Categoria();
        categoriaSeleccionado.setEstado(1);
        hmCategorias = new HashMap();
        AdministradorService as=new AdministradorServiceImpl();
        listaCategorias = as.getListaCategorias();
        for (Categoria c : listaCategorias) {
            hmCategorias.put(c.getNombre(), c);
        }
    }
    
    public void agregarProducto(){
        FacesMessage mensaje;
        FacesMessage.Severity mensajeTipo;
        String mensajeContenido;

        AdministradorService as=new AdministradorServiceImpl();
        
        producto.setCategoria(categoriaSeleccionado);
        if (as.agregarProducto(producto)) {
            mensajeTipo = FacesMessage.SEVERITY_INFO;
            mensajeContenido = "Se registro correctamente el producto " + producto.getNombre();
        } else {
            mensajeTipo = FacesMessage.SEVERITY_WARN;
            mensajeContenido = "No se agrego el producto " + producto.getNombre();
        }

        mensaje = new FacesMessage(mensajeTipo, "", mensajeContenido);

        FacesContext.getCurrentInstance().addMessage("form02growl", mensaje);
        inicializar();
    }

    public HashMap getHmCategorias() {
        return hmCategorias;
    }

    public void setHmCategorias(HashMap hmCategorias) {
        this.hmCategorias = hmCategorias;
    }

    public List<Categoria> getListaCategorias() {
        return listaCategorias;
    }

    public void setListaCategorias(List<Categoria> listaCategorias) {
        this.listaCategorias = listaCategorias;
    }

    public Categoria getCategoriaSeleccionado() {
        return categoriaSeleccionado;
    }

    public void setCategoriaSeleccionado(Categoria categoriaSeleccionado) {
        this.categoriaSeleccionado = categoriaSeleccionado;
    }

    public Producto getProducto() {
        return producto;
    }

    public void setProducto(Producto producto) {
        this.producto = producto;
    }

}
